package com.eclipse.e20200205_集合.TreeSet;

import java.util.Comparator;
import java.util.TreeSet;

public class Comparable_compareTo {
	public static void main(String[] args) {
		
		//比较器
		//默认情况下，比较时会调用 对象的 compareTo进行比较
		//如果你传入比较器，就不会调用compareTo，就会使用你传入的比较器进行比较
		
		//默念是使用字母的顺序时行 比较
		TreeSet<String> set = new TreeSet<String>();
		set.add("aaaaaaaaaa");
		set.add("z");
		set.add("wc");
		set.add("myx");
		set.add("cba");
		System.out.println(set);
		System.out.println("----------");
		
		//使用比较器进行比较
		//1.实现一个接口comparator
		//2.定义 一个类来去实现这个接口
		//3.覆盖它里面的方法
		//默念是使用字母的顺序时行 比较
		
		TreeSet<String> set2 = new TreeSet<String>(new CompareLength());
		set2.add("aaaaaaaaaa");
		set2.add("z");
		set2.add("wc");
		set2.add("myx");
		set2.add("cba");
		System.out.println(set2);
		
	}
}

class CompareLength extends Object implements Comparator<String>{

	@Override
	//1.代表当前正在添加的对象
	//2.代表集合当中的对象
	public int compare(String o1, String o2) {
		int lenght = o1.length() - o2.length();   //主要是比长度
		return lenght == 0 ?  o1.compareTo(o2) : lenght;  //如果长度相等，再去比内容
	}
}
